//+build wireinject

package test

import (
	"github.com/google/wire"
	"go.didapinche.com/boot"
	"go.didapinche.com/foundation/plat-echo/app/ops/controllers"
	"go.didapinche.com/foundation/plat-echo/app/ops/crons"
	"go.didapinche.com/foundation/plat-echo/app/ops/repositories"
	"go.didapinche.com/foundation/plat-echo/app/ops/services"
	"go.didapinche.com/foundation/plat-echo/app/ops/zclients"
	"go.didapinche.com/foundation/plat-echo/app/ops/zservers"
	"go.didapinche.com/foundation/plat-echo/pkg/consul"
	"go.didapinche.com/foundation/plat-echo/pkg/dingding"
	httpclient "go.didapinche.com/foundation/plat-echo/pkg/httpClient"
	"go.didapinche.com/foundation/plat-echo/pkg/k8s"
	"go.didapinche.com/foundation/plat-echo/pkg/phone"
	promentheus "go.didapinche.com/foundation/plat-echo/pkg/prometheus"
	"go.didapinche.com/foundation/plat-echo/pkg/sms"
	ginstart "go.didapinche.com/gin-start"
	"go.didapinche.com/goapi/plat_rocket_api"
	gormstart "go.didapinche.com/gorm-start"
	jaegerstart "go.didapinche.com/jaeger-start"
	"go.didapinche.com/uic"
	zapstart "go.didapinche.com/zap-start"
	"go.didapinche.com/zeus-start"
)

var providerSet = wire.NewSet(
	// start , stop and agolloListener
	//NewStart,
	//NewShutdown,

	// base package
	httpclient.ProviderSet,
	boot.ProviderSet,
	gormstart.ProviderSet,
	sms.ProviderSet,
	ginstart.ProviderSet,
	zapstart.ProviderSet,
	jaegerstart.ProviderSet,
	services.ProviderSet,
	repositories.ProviderSet,
	controllers.ProviderSet,
	zservers.ProviderSet,
	phone.ProviderSet,
	crons.ProviderSet,
	zeusstart.ProviderSet,
	zclients.ProviderSet,
	k8s.ProviderSet,
	promentheus.ProviderSet,
	dingding.ProviderSet,
	uic.ProviderSet,
	consul.ProviderSet,
)

func CreateAppSync(cf string) (*crons.AppSyncJob, error) {
	panic(wire.Build(providerSet))
}

func CreateApiSync(cf string) (*crons.ApiSyncJob, error) {
	panic(wire.Build(providerSet))
}

func CreateRocketMqService(cf string) (plat_rocket_api.TChanRocketMqService, error) {
	panic(wire.Build(providerSet))
}

func CreateApiDataCron(cf string) (*crons.ApiDataJob, error) {
	panic(wire.Build(providerSet))
}

func CreateAlert(cf string) (services.HookService, error) {
	panic(wire.Build(providerSet))
}

func CreateHostSync(cf string) (*crons.HostJob, error) {
	panic(wire.Build(providerSet))
}

func CreateDaily(cf string) (*crons.AlertDailyStatJob, error) {
	panic(wire.Build(providerSet))
}

func CreateNotice(cf string) (*crons.AlertNoticeJob, error) {
	panic(wire.Build(providerSet))
}
